import request from '@/utils/axios/index'
import type { Dayjs } from 'dayjs';

/** 收款管理信息 */
export interface BizPaymentManagement {
          id: number; // ID
          name: string; // 客户名称
          type: string; // 类型
          customerId: string; // 客户ID
          customerName: string; // 客户名称
          contractId: string; // 合同ID
          contractName: string; // 合同名称
          contractCode: string; // 合同编号
          periods: string; // 期数
          serviceTeamId: string; // 服务团队ID
          serviceTeamName: string; // 服务团队
          deptId: number; // 部门
          layerOrder: string; // 层级顺序
          payMoney: number; // 付款金额
          macthMoney: number; // 已匹配金额
          payDate: string | Dayjs; // 付款日期
          coexecutor: string; // 共同执行人
          content: string; // 收款内容
          remarks: string; // 备注
          bankName: string; // 银行
          versionNum: string; // 版本号
          status: string; // 状态
          recorderId: number; // 录入人ID
          recorderName: string; // 经手人
          recordDate: string | Dayjs; // 录入日期
          invoiceCodes: string; // 发票
          payDateImp: string | Dayjs; // 实际付款日期
          orderNo: string; // 订单号
          effectDate: string | Dayjs; // 收款日期
          totalMoney: number; // 应收金额
          receivedMoney: number; // 实收金额
          thisMacthMoney: number; // 本次匹配金额
          needPay: string; // 需要匹配
          macthInfo: string; // 匹配信息
          serviceDate: string | Dayjs; // 对应服务期
  }

// 收款管理 API
export const BizPaymentManagementApi = {
  // 查询收款管理分页
  getBizPaymentManagementPage: async (params: any) => {
    return await request.get({ url: `/pay/biz-payment-management/page`, params })
  },

  // 查询收款管理详情
  getBizPaymentManagement: async (id: number) => {
    return await request.get({ url: `/pay/biz-payment-management/get?id=` + id })
  },

  // 新增收款管理
  createBizPaymentManagement: async (data: BizPaymentManagement) => {
    return await request.post({ url: `/pay/biz-payment-management/create`, data })
  },

  // 修改收款管理
  updateBizPaymentManagement: async (data: BizPaymentManagement) => {
    return await request.put({ url: `/pay/biz-payment-management/update`, data })
  },

  // 删除收款管理
  deleteBizPaymentManagement: async (id: number) => {
    return await request.delete({ url: `/pay/biz-payment-management/delete?id=` + id })
  },

  /** 批量删除收款管理 */
  deleteBizPaymentManagementList: async (ids: number[]) => {
    return await request.delete({ url: `/pay/biz-payment-management/delete-list?ids=${ids.join(',')}` })
  },

  // 导出收款管理 Excel
  exportBizPaymentManagement: async (params) => {
    return await request.download({ url: `/pay/biz-payment-management/export-excel`, params })
  },

  // 下载导入模板
  importTemplate: async () => {
    return await request.download({ url: '/pay/biz-payment-management/get-import-template' })
  },

  // 查询合同列表
  getBizContractArchiveList: async () => {
    return await request.get({ url: `/pay/biz-payment-management/getBizContractArchiveList` })
  },
}
